Skip to content

Conversation

@pixelead0
Copy link
Member

📝 Descripción

Soluciona el problema #41 donde URLs como https://pythoncdmx.org/meetups/ no funcionan en producción ni staging, pero https://pythoncdmx.org/meetups/index.html sí funciona. El problema afecta tanto al ambiente de producción como al de staging.

🏷️ Tipo de Cambio

  • 🐛 Bug fix (corrección de errores)

🔧 Cambios Realizados

  • mkdocs.yml: Agregar use_directory_urls: true para configuración correcta de URLs
  • terraform/cloudfront.tf:
    • Implementar CloudFront Function url_rewrite para manejar URLs sin extensión
    • Asociar función con todos los cache behaviors de producción
  • terraform/cloudfront-staging.tf:
    • Aplicar la misma CloudFront Function a staging environment
    • Asociar función con todos los cache behaviors de staging
  • docs/URL_FIX_DOCUMENTATION.md: Documentación completa del problema y solución

✅ Checklist de Verificación

  • He probado los cambios localmente (mkdocs serve)
  • Los commits siguen Conventional Commits
  • He actualizado la documentación
  • He probado en modo claro y oscuro
  • He probado en dispositivos móviles
  • Los enlaces funcionan correctamente
  • Las imágenes tienen texto alternativo
  • No hay errores en la consola del navegador

🔧 Cómo Funciona la Solución

CloudFront Function

La función intercepta las requests y:

  • Si la URL termina en /, agrega index.html (ej: /meetups//meetups/index.html)
  • Si la URL no tiene extensión, agrega .html (ej: /about/about.html)
  • Mantiene intactos los assets estáticos (CSS, JS, imágenes)

Ambientes Afectados

  • Producción: https://pythoncdmx.org/meetups/
  • Staging: https://staging.pythoncdmx.org/meetups/

📸 Capturas de Pantalla (si aplica)

Antes

  • https://pythoncdmx.org/meetups/ → Error 404
  • https://staging.pythoncdmx.org/meetups/ → Error 404

Después

  • https://pythoncdmx.org/meetups/ → Funciona correctamente
  • https://staging.pythoncdmx.org/meetups/ → Funciona correctamente

🔗 Issues Relacionados

Fixes el problema reportado de URLs sin extensión en producción y staging

📋 Notas Adicionales

Despliegue Requerido

IMPORTANTE: Este fix requiere aplicar cambios de Terraform antes del despliegue:

cd terraform
terraform plan
terraform apply

Commits Incluidos

  1. fix(config): agregar use_directory_urls para manejar URLs sin extensión
  2. feat(infra): implementar CloudFront Function para URLs sin extensión
  3. docs: agregar documentación para fix de URLs sin extensión
  4. feat(infra): aplicar CloudFront Function a staging environment
  5. docs: actualizar documentación con soporte para staging

Verificación Post-Despliegue

Después del despliegue, verificar que funcionen:

  • https://pythoncdmx.org/meetups/
  • https://staging.pythoncdmx.org/meetups/
  • https://pythoncdmx.org/about/
  • https://staging.pythoncdmx.org/about/

Notas Técnicas

  • La CloudFront Function se ejecuta en el edge con latencia mínima
  • Reutiliza la misma función global para ambos ambientes
  • Compatible con el comportamiento estándar de MkDocs
  • No afecta el rendimiento de assets estáticos

- Configurar use_directory_urls: true en mkdocs.yml
- Permite que URLs como /meetups/ funcionen correctamente
- Mantiene compatibilidad con estructura de directorios de MkDocs
- Agregar CloudFront Function url_rewrite para manejar URLs sin .html
- Función redirige /meetups/ a /meetups/index.html automáticamente
- Asociar función con todos los cache behaviors para consistencia
- Soluciona problema de enlaces que no funcionan en producción
- Documentar problema de URLs que no funcionan en producción
- Explicar solución implementada con CloudFront Function
- Incluir pasos de despliegue y verificación
- Agregar notas técnicas sobre funcionamiento de la solución
- Agregar función url_rewrite a todos los cache behaviors de staging
- Reutilizar la misma CloudFront Function global para consistencia
- Soluciona problema de URLs sin extensión en staging.pythoncdmx.org
- Mantiene configuración de cache más agresiva para staging
- Agregar información sobre configuración de staging
- Incluir URLs de verificación para ambos ambientes
- Documentar que la misma CloudFront Function se reutiliza
@pixelead0 pixelead0 merged commit e9b294a into staging Oct 21, 2025
@pixelead0 pixelead0 deleted the fix/urls-sin-extension-cloudfront branch October 21, 2025 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants